package pokergame;

import java.awt.image.BufferedImage;
import java.io.File;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 *
 * @author Jeremy
 */
public class PokerGUI extends javax.swing.JFrame
{
    
    
    
    int currDealer = 0; //0 = Dealer, 1 = ai1, 2 = player, 3 = ai2;
    int raiseAmount = 0; //set after player chooses amount to raise
    int bankTotal = 100, betAmount = 0, kitty = 0; //bank total default is $100, default starting bet is $5, default kitty is $0
    int gameState = 0; // 0 - deal hands, 1 - deal flop, 2 - deal turn, 3 - deal river, 4 - determine winner
    BufferedImage cards, back, chips;
    BufferedImage[] cardArray = new BufferedImage[52], chipArray = new BufferedImage[4];
    int height1, width1, height2, width2;
    SpinnerNumberModel betList = new SpinnerNumberModel(3, 2, bankTotal + 10, 2);
    Hand playerHand, dealerHand;
    Deck deck;
    Board board;
    JComponent editor;

    /*0-13 Hearts, 14-26 Diamonds, 27-39 Clubs, 40-51 Spades */
    public void BuildImages()
    {
        try
        {
            cards = ImageIO.read(new File("cards.png"));
            back = ImageIO.read(new File("back.gif"));
            chips = ImageIO.read(new File("bigSmallDealer.jpg"));
            height1 = cards.getHeight();
            width1 = cards.getWidth();
            height2 = chips.getHeight();
            width2 = chips.getWidth();
        } catch (IOException ex)
        {
            Logger.getLogger(PokerGUI.class.getName()).log(Level.SEVERE, null, ex);
        }

        int count = 0, startW, startH = 0;

        for (int i = 0; i < 4; i++)
        {
            startW = 0;

            for (int j = 0; j < 13; j++)
            {
                try
                {
                    cardArray[count++] = cards.getSubimage(startW + 1, startH + 1, width1 / 13, height1 / 4);
                } catch (Exception e)
                {
                    System.out.println(e + ":" + i + ":" + j + "::" + startW + ":" + (startW + width1 / 13));
                    break;
                }
                startW += width1 / 13;
            }

            startH += height1 / 4;
        }

        startW = 0;
        startH = 0;

        for (int i = 2; i >= 0; i--)
        {
            try
            {
                
                chipArray[i] = chips.getSubimage(startW, startH, width2 / 3, height2);
            } catch (Exception e)
            {
                System.out.println(e);
            }
            startW += width2 / 3;
        }
        try
        {
            chipArray[3] = chipArray[2];
        } catch (Exception ex)
        {
            Logger.getLogger(PokerGUI.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void turnOver(int which)
    {

        if (which == 2)
        {
            betAmount = 0;
            kitty = 0;
            //System.out.println(currDealer);
            
            if (currDealer == 3)
            {
                currDealer = 0;
            } else
            {
                currDealer++;
            }

            if (currDealer == 0)
            {
                bLDchipDealer.setIcon(new ImageIcon(chipArray[currDealer]));
                bLDchipai2.setIcon(new ImageIcon(chipArray[currDealer + 1]));
                bLDchipPlayer.setIcon(new ImageIcon(chipArray[currDealer + 2]));
                bLDchipai1.setIcon(new ImageIcon(chipArray[currDealer + 3]));
            } else
            {
                if (currDealer == 1)
                {
                    bLDchipDealer.setIcon(new ImageIcon(chipArray[currDealer + 2]));
                    bLDchipai2.setIcon(new ImageIcon(chipArray[currDealer - 1]));
                    bLDchipPlayer.setIcon(new ImageIcon(chipArray[currDealer]));
                    bLDchipai1.setIcon(new ImageIcon(chipArray[currDealer + 1]));
                } else
                {
                    if (currDealer == 2)
                    {
                        bLDchipDealer.setIcon(new ImageIcon(chipArray[currDealer]));
                        bLDchipai2.setIcon(new ImageIcon(chipArray[currDealer + 1]));
                        bLDchipPlayer.setIcon(new ImageIcon(chipArray[currDealer - 2]));
                        bLDchipai1.setIcon(new ImageIcon(chipArray[currDealer - 1]));
                    } else
                    {
                        if (currDealer == 3)
                        {
                            bLDchipDealer.setIcon(new ImageIcon(chipArray[currDealer - 2]));
                            bLDchipai2.setIcon(new ImageIcon(chipArray[currDealer - 1]));
                            bLDchipPlayer.setIcon(new ImageIcon(chipArray[currDealer]));
                            bLDchipai1.setIcon(new ImageIcon(chipArray[currDealer - 3]));
                        }
                    }
                }
            }

        }
        UpdateTable();
        callButton.setEnabled(true);
        raiseButton.setEnabled(true);
        foldButton.setEnabled(true);
    }

    public void UpdateTable()
    {
        if (gameState == 0)
        {
            deck = new Deck();
            playerHand = new Hand(deck);
            dealerHand = new Hand(deck);
            board = new Board(deck);

            playerHand.Evaluate(board);
            dealerHand.Evaluate(board);

            // get player cards
            int index = 13 * (playerHand.cards[0].GetSuit().ordinal()) + playerHand.cards[0].GetRank().ordinal();
            playerCard1.setIcon(new ImageIcon(cardArray[index]));
            index = 13 * (playerHand.cards[1].GetSuit().ordinal()) + playerHand.cards[1].GetRank().ordinal();
            playerCard2.setIcon(new ImageIcon(cardArray[index]));
            dealerCard1.setIcon(new ImageIcon(back));
            dealerCard2.setIcon(new ImageIcon(back));

            // get board cards
            flop1.setIcon(new ImageIcon(back));
            flop2.setIcon(new ImageIcon(back));
            flop3.setIcon(new ImageIcon(back));
            flop4.setIcon(new ImageIcon(back));
            flop5.setIcon(new ImageIcon(back));
        } else
        {
            if (gameState == 1)
            {
                // get board cards
                int index = 13 * (board.cards[0].GetSuit().ordinal()) + board.cards[0].GetRank().ordinal();
                flop1.setIcon(new ImageIcon(cardArray[index]));
                index = 13 * (board.cards[1].GetSuit().ordinal()) + board.cards[1].GetRank().ordinal();
                flop2.setIcon(new ImageIcon(cardArray[index]));
                index = 13 * (board.cards[2].GetSuit().ordinal()) + board.cards[2].GetRank().ordinal();
                flop3.setIcon(new ImageIcon(cardArray[index]));
            } else
            {
                if (gameState == 2)
                {
                    int index = 13 * (board.cards[3].GetSuit().ordinal()) + board.cards[3].GetRank().ordinal();
                    flop4.setIcon(new ImageIcon(cardArray[index]));
                } else
                {
                    if (gameState == 3)
                    {
                        int index = 13 * (board.cards[4].GetSuit().ordinal()) + board.cards[4].GetRank().ordinal();
                        flop5.setIcon(new ImageIcon(cardArray[index]));
                    } else
                    {
                        if (gameState == 4)
                        {
                            int index = 13 * (dealerHand.cards[0].GetSuit().ordinal()) + dealerHand.cards[0].GetRank().ordinal();
                            dealerCard1.setIcon(new ImageIcon(cardArray[index]));
                            index = 13 * (dealerHand.cards[1].GetSuit().ordinal()) + dealerHand.cards[1].GetRank().ordinal();
                            dealerCard2.setIcon(new ImageIcon(cardArray[index]));

                            CheckWinner();

                            nextHandWindow.addWindowListener(new WindowListener()
                            {
                                @Override
                                public void windowClosed(WindowEvent e)
                                {
                                    callButton.setEnabled(true);
                                    raiseButton.setEnabled(true);
                                    foldButton.setEnabled(true);
                                }

                                @Override
                                public void windowOpened(WindowEvent e)
                                {
                                    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                                }

                                @Override
                                public void windowClosing(WindowEvent e)
                                {
                                    callButton.setEnabled(true);
                                    raiseButton.setEnabled(true);
                                    foldButton.setEnabled(true);
                                }

                                @Override
                                public void windowIconified(WindowEvent e)
                                {
                                    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                                }

                                @Override
                                public void windowDeiconified(WindowEvent e)
                                {
                                    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                                }

                                @Override
                                public void windowActivated(WindowEvent e)
                                {
                                    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                                }

                                @Override
                                public void windowDeactivated(WindowEvent e)
                                {
                                    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                                }
                            });

                            nextHandWindow.show();

                            gameState = 0;
                            return;
                        }
                    }
                }
            }
        }
        boolean fold = false;
        if (dealerHand.StrengthOf() != 0 || gameState < 2)
        {
            //AI LOGIC
            switch (dealerHand.StrengthOf())
            {
                case 0:
                    if (this.betAmount == 0)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 1:
                    if (this.betAmount <= 10)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 2:
                    if (this.betAmount <= 10)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 3:
                    if (this.betAmount <= 15)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 4:
                    if (this.betAmount <= 20)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 5:
                    if (this.betAmount <= 25)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 6:
                    if (this.betAmount <= 25)
                    {
                        kitty += betAmount;
                        break;
                    } else
                    {
                        fold = true;
                    }
                    break;
                case 7:
                    if (this.betAmount <= 40)
                    {
                        kitty += betAmount + 5;
                        break;
                    } else
                    {
                        if (this.betAmount <= 45)
                        {
                            kitty += betAmount;
                            break;
                        } else
                        {
                            fold = true;
                        }
                    }
                    break;
                case 8:
                    fold=true;
                    if (this.betAmount <= 40)
                    {
                        kitty += betAmount + 10;
                        break;
                    } else
                    {
                        if (this.betAmount <= 45)
                        {
                            kitty += betAmount + 5;
                            break;
                        } else
                        {
                            if (this.betAmount <= 50)
                            {
                                kitty += betAmount;
                                break;
                            } else
                            {
                                fold = true;
                            }
                        }
                    }
                    break;
                case 9:
                    if (betAmount < 20)
                    {
                        kitty += betAmount;
                    } else
                    {
                        if (betAmount <= 50)
                        {
                            kitty += betAmount * 2;
                        } else
                        {
                            if (betAmount <= 60)
                            {
                                kitty += betAmount * 1.6;
                            } else
                            {
                                if (betAmount <= 70)
                                {
                                    kitty += betAmount * 1.4;
                                } else
                                {
                                    if (betAmount <= 80)
                                    {
                                        kitty += betAmount * 1.2;
                                    }
                                }
                            }
                        }
                    }
                    break;
                default:
                    fold = true;
            }
            if (fold)
            {
                JOptionPane.showMessageDialog(null, "The computer has folded!");
                bankTotal += kitty;
                kitty = 0;
                currKitty.setText("$" + kitty);
                gameState = 0;
                turnOver(2);
                return;
            }
        }


        betAmount = 0;
        currTableBet.setText("$" + betAmount);

        gameState++;
    }

    public void CheckWinner()
    {
        if (playerHand.compareTo(dealerHand) == 1)
        {
            JOptionPane.showMessageDialog(null, "The player wins with a " + playerHand.ValueOf() + "!");
            bankTotal += kitty;
        } else
        {
            JOptionPane.showMessageDialog(null, "The computer wins with a " + dealerHand.ValueOf() + "!");
        }
        kitty = 0;
        betAmount = 0;
        currPlayerBank.setText("$" + bankTotal);
        currTableBet.setText("$" + betAmount);
        currKitty.setText("$" + kitty);
    }

    /**
     * Creates new form PokerGUI
     *
     * @param
     * @param
     * @return
     * @see
     */
    public PokerGUI()
    {
        BuildImages();
        initComponents();
        UpdateTable();
        //set up river, flop, whatever you want to call it, images
        //note, you can leave the actual image underneath until the last second
        //and only update the card when flipped



        //set up dealer's hand back images
        dealerCard1.setIcon(new ImageIcon(back));
        dealerCard2.setIcon(new ImageIcon(back));

        //set up ai1's hand back images, if playing
        ai1Card1.setIcon(new ImageIcon(back));
        ai1Card2.setIcon(new ImageIcon(back));

        //set up ai2's hand back images, if playing
        ai2Card1.setIcon(new ImageIcon(back));
        ai2Card2.setIcon(new ImageIcon(back));

        //set chips for Big, Little, and Dealer Placement
        bLDchipDealer.setIcon(new ImageIcon(chipArray[0]));
        bLDchipai1.setIcon(new ImageIcon(chipArray[1]));
        bLDchipPlayer.setIcon(new ImageIcon(chipArray[2]));

        //sets text of which player is going
        currPlayer.setText("Dealer is thinking...");

        //sets up the kitty to be accessible throughout game
        currKitty.setText("Kitty: $" + kitty);

        //set current players bank total
            /*if old player, load bank balance from database, i.e.
         bankTotal = database.userBank;*/
        currPlayerBank.setText("$" + bankTotal);

        //set current bet amount for the table, usually starting at $5
        currTableBet.setText("$" + betAmount);

//            betAmountIncrease.set;

        /*next, the 3 buttons used to call, raise, and fold
         //right now, after clicking they just go to a function call turnOver()
         //which sleeps for a second before returning all button functionality to
         //user
         */

        /*after call is clicked, all buttons should be disabled until either
         * the end of the turn or someone else raises
         */
        foldButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                    bankTotal -= betAmount;
                    kitty += betAmount;

                    currPlayerBank.setText("$" + bankTotal);
                    currTableBet.setText("$" + betAmount);
                    currKitty.setText("$" + kitty);

                    callButton.setEnabled(false);
                    raiseButton.setEnabled(false);
                    foldButton.setEnabled(false);

                    turnOver(0);
                //else
                //System.out.println("NotEnoughMoney!!");
            }
        });

        /*raise is done in somewhat the same manner as call, in that after
         * its clicked, the buttons should be disabled either until end of 
         * turn or whenever someone else raises bets
         */
        callButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                    //this should only happen after user chooses raise amount
                        /*betAmount += 5;
                     bankTotal -= betAmount;
                     kitty += betAmount;
                       
                     currPlayerBank.setText("$" + bankTotal);
                     currTableBet.setText("$" + betAmount);
                     currKitty.setText("$" + kitty);*/

                    callButton.setEnabled(false);
                    raiseButton.setEnabled(false);
                    foldButton.setEnabled(false);

                    System.out.println(betAmount + ":" + (bankTotal));
                    betList.setMinimum(-1000);
                    betList.setMaximum(1000);

                    raiseWindow.addWindowListener(new WindowListener()
                    {
                        @Override
                        public void windowClosed(WindowEvent e)
                        {
                            callButton.setEnabled(true);
                            raiseButton.setEnabled(true);
                            foldButton.setEnabled(true);
                        }

                        @Override
                        public void windowOpened(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowClosing(WindowEvent e)
                        {
                            callButton.setEnabled(true);
                            raiseButton.setEnabled(true);
                            foldButton.setEnabled(true);
                        }

                        @Override
                        public void windowIconified(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowDeiconified(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowActivated(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowDeactivated(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }
                    });
                    raiseWindow.show();
                //else
                //System.out.println("NotEnoughMoney!!");
            }
        });

        /*fold is the derpiest of all, since once clicked, the user just waits
         * for the ai's to duke it out. Really, turnOver() shouldn't be called
         * until after the ai's are done, but that can be done later
         */
        raiseButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                

                turnOver(2);
                gameState = 0;
            }
        });

        numOfPlayersButton.addActionListener(new ActionListener()
        {            
            @Override
            public void actionPerformed(ActionEvent e)
            {
                numOfPlayersWindow.dispose(); 
                turnOver(0);
            }
        });
        
        betButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                int increase, temp;
                increase = (int) betAmountIncrease.getValue();
                temp = increase - betAmount;
                betAmount = increase;
                bankTotal -= temp;
                kitty += temp;
                //System.out.println(temp);

                currPlayerBank.setText("$" + bankTotal);
                currTableBet.setText("$" + betAmount);
                currKitty.setText("Kitty: $" + kitty);

                raiseWindow.dispose();
                turnOver(1);
            }
        });

        nextHandButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                // TODO Auto-generated method stub
                betAmount = 0;
                kitty = 0;

                currPlayerBank.setText("$" + bankTotal);
                currTableBet.setText("$" + betAmount);
                currKitty.setText("Kitty: $" + kitty);

                nextHandWindow.dispose();
                turnOver(0);
            }
        });

        menuNewGame.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                //do shit here to refresh game :D
            }
        });
        
        menuNumOfPlayers.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                numOfPlayersWindow.addWindowListener(new WindowListener()
                    {
                        @Override
                        public void windowClosed(WindowEvent e)
                        {
                            callButton.setEnabled(true);
                            raiseButton.setEnabled(true);
                            foldButton.setEnabled(true);
                        }

                        @Override
                        public void windowOpened(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowClosing(WindowEvent e)
                        {
                            callButton.setEnabled(true);
                            raiseButton.setEnabled(true);
                            foldButton.setEnabled(true);
                        }

                        @Override
                        public void windowIconified(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowDeiconified(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowActivated(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }

                        @Override
                        public void windowDeactivated(WindowEvent e)
                        {
                            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                        }
                    });
                    numOfPlayersWindow.show();
            }
            
        });

        menuExit.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
               
            }
        });

        menuLoad.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                //Do something with bank to the player object

                //Ask for file destination
                final JFileChooser fc = new JFileChooser();
                fc.showSaveDialog(menuSave);
                File f = fc.getSelectedFile();
                try
                {
                    PrintWriter writer = new PrintWriter(f.getAbsolutePath() + ".ser");
                    writer.append("" + bankTotal);
                    writer.close();
                } catch (FileNotFoundException ex)
                {
                    Logger.getLogger(PokerGUI.class.getName()).log(Level.SEVERE, null, ex);
                } catch (IOException ex)
                {
                    Logger.getLogger(PokerGUI.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });

        menuSave.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                //Do stuff to load the player
                final JFileChooser fc = new JFileChooser();
                fc.showOpenDialog(menuLoad);
                File f = fc.getSelectedFile();
                try
                {
                    Scanner s = new Scanner(f);
                    bankTotal = s.nextInt()+100;
                    currPlayerBank.setText("$" + bankTotal);
                } catch (FileNotFoundException ex)
                {
                    Logger.getLogger(PokerGUI.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        
        menuHelp.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {

                JOptionPane.showMessageDialog(null, "This Poker application was made by CS 408 Team 12 consisting of Josh Dennison, Dan Bass, Justin Ennen, Erik Helleren, Justin Imel, and Jeremy Jenkins", "About Game", JOptionPane.PLAIN_MESSAGE);
                JOptionPane.showMessageDialog(null, "This Poker application was made by CS 408 Team 12 consisting of Josh Dennison, Dan Bass, Justin Ennen, Erik Helleren, Justin Imel, and Jeremy Jenkins", "About Game", JOptionPane.PLAIN_MESSAGE);
            }
        });
        
        menuAbout.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                HowToGUI how = new HowToGUI();
                how.setVisible(true);
                
            }
        });
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents()
    {

        raiseWindow = new javax.swing.JDialog();
        numOfPlayersWindow = new javax.swing.JDialog();
        nextHandWindow = new javax.swing.JDialog();
        betAmountIncrease = new javax.swing.JSpinner(betList);
        jLabel28 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        betButton = new javax.swing.JButton();
        numOfPlayersButton = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        dealerArea = new javax.swing.JPanel();
        jPanel6 = new javax.swing.JPanel();
        jPanel16 = new javax.swing.JPanel();
        dealerCard1 = new javax.swing.JLabel();
        jPanel17 = new javax.swing.JPanel();
        dealerCard2 = new javax.swing.JLabel();
        bLDchipDealer = new javax.swing.JLabel();
        playerArea = new javax.swing.JPanel();
        callButton = new javax.swing.JButton();
        raiseButton = new javax.swing.JButton();
        foldButton = new javax.swing.JButton();
        nextHandButton = new javax.swing.JButton();
        jPanel5 = new javax.swing.JPanel();
        jPanel14 = new javax.swing.JPanel();
        playerCard1 = new javax.swing.JLabel();
        jPanel15 = new javax.swing.JPanel();
        playerCard2 = new javax.swing.JLabel();
        jPanel7 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        currTableBet = new javax.swing.JLabel();
        jPanel8 = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        currPlayerBank = new javax.swing.JLabel();
        bLDchipPlayer = new javax.swing.JLabel();
        jPanel4 = new javax.swing.JPanel();
        jPanel9 = new javax.swing.JPanel();
        flop1 = new javax.swing.JLabel();
        jPanel10 = new javax.swing.JPanel();
        flop2 = new javax.swing.JLabel();
        jPanel11 = new javax.swing.JPanel();
        flop3 = new javax.swing.JLabel();
        jPanel12 = new javax.swing.JPanel();
        flop4 = new javax.swing.JLabel();
        jPanel13 = new javax.swing.JPanel();
        flop5 = new javax.swing.JLabel();
        currPlayer = new javax.swing.JLabel();
        ai1Area = new javax.swing.JPanel();
        jPanel20 = new javax.swing.JPanel();
        jPanel21 = new javax.swing.JPanel();
        ai1Card1 = new javax.swing.JLabel();
        jPanel22 = new javax.swing.JPanel();
        ai1Card2 = new javax.swing.JLabel();
        ai1Activity = new javax.swing.JLabel();
        ai1Bank = new javax.swing.JLabel();
        bLDchipai1 = new javax.swing.JLabel();
        ai2Area = new javax.swing.JPanel();
        jPanel23 = new javax.swing.JPanel();
        jPanel24 = new javax.swing.JPanel();
        ai2Card1 = new javax.swing.JLabel();
        jPanel25 = new javax.swing.JPanel();
        ai2Card2 = new javax.swing.JLabel();
        ai2Activity = new javax.swing.JLabel();
        ai2Bank = new javax.swing.JLabel();
        bLDchipai2 = new javax.swing.JLabel();
        currKitty = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();
        menuNewGame = new javax.swing.JMenuItem();
        menuNumOfPlayers = new javax.swing.JMenuItem();
        menuExit = new javax.swing.JMenuItem();
        menuSave = new javax.swing.JMenuItem();
        menuLoad = new javax.swing.JMenuItem();
        menuHelp = new javax.swing.JMenuItem();
        menuAbout = new javax.swing.JMenuItem();

        raiseWindow.setTitle("Raise Bet");
        raiseWindow.setMaximumSize(new java.awt.Dimension(215, 148));
        raiseWindow.setMinimumSize(new java.awt.Dimension(215, 148));
        raiseWindow.setResizable(false);

        jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel28.setText("Please Enter New Bet Amount:");

        betButton.setText("Bet!");

        javax.swing.GroupLayout raiseWindowLayout = new javax.swing.GroupLayout(raiseWindow.getContentPane());
        raiseWindow.getContentPane().setLayout(raiseWindowLayout);
        raiseWindowLayout.setHorizontalGroup(
                raiseWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabel28, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, raiseWindowLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(raiseWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, raiseWindowLayout.createSequentialGroup()
                .addComponent(betAmountIncrease, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(85, 85, 85))
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, raiseWindowLayout.createSequentialGroup()
                .addComponent(betButton, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(76, 76, 76)))));
        raiseWindowLayout.setVerticalGroup(
                raiseWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, raiseWindowLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel28)
                .addGap(18, 18, 18)
                .addComponent(betAmountIncrease, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(betButton)
                .addContainerGap(33, Short.MAX_VALUE)));
        
        numOfPlayersWindow.setTitle("Number Of Players");
        numOfPlayersWindow.setMaximumSize(new java.awt.Dimension(215, 148));
        numOfPlayersWindow.setMinimumSize(new java.awt.Dimension(215, 148));
        numOfPlayersWindow.setResizable(false);

        jLabel28.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel28.setText("Please select the number of players: ");

        numOfPlayersButton.setText("OK");

        javax.swing.GroupLayout numOfPlayersWindowLayout = new javax.swing.GroupLayout(numOfPlayersWindow.getContentPane());
        numOfPlayersWindow.getContentPane().setLayout(numOfPlayersWindowLayout);
        numOfPlayersWindowLayout.setHorizontalGroup(
                numOfPlayersWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabel28, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 215, Short.MAX_VALUE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, numOfPlayersWindowLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(numOfPlayersWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, numOfPlayersWindowLayout.createSequentialGroup()
                .addComponent(betAmountIncrease, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(85, 85, 85))
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, numOfPlayersWindowLayout.createSequentialGroup()
                .addComponent(numOfPlayersButton, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(76, 76, 76)))));
        numOfPlayersWindowLayout.setVerticalGroup(
                numOfPlayersWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, numOfPlayersWindowLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel28)
                .addGap(18, 18, 18)
                .addComponent(betAmountIncrease, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(numOfPlayersButton)
                .addContainerGap(33, Short.MAX_VALUE)));

        nextHandWindow.setTitle("Round End...");
        nextHandWindow.setMaximumSize(new java.awt.Dimension(215, 148));
        nextHandWindow.setMinimumSize(new java.awt.Dimension(215, 148));
        nextHandWindow.setResizable(false);

        jLabel29.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel29.setText("Let's do that again!");
        nextHandButton.setText("Deal Next Hand!");

        javax.swing.GroupLayout nextHandWindowLayout = new javax.swing.GroupLayout(nextHandWindow.getContentPane());
        nextHandWindow.getContentPane().setLayout(nextHandWindowLayout);
        nextHandWindowLayout.setHorizontalGroup(
                nextHandWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabel29, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 150, Short.MAX_VALUE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, nextHandWindowLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(nextHandWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, nextHandWindowLayout.createSequentialGroup()
                .addComponent(nextHandButton, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(76, 76, 76)))));
        nextHandWindowLayout.setVerticalGroup(
                nextHandWindowLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, nextHandWindowLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel29)
                .addGap(18, 18, 18)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(nextHandButton)
                .addContainerGap(33, Short.MAX_VALUE)));

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Let's Play Some Poker");
        setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        setResizable(false);

        jPanel1.setBackground(new java.awt.Color(0, 102, 0));
        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jPanel1.setName("gameArea"); // NOI18N
        jPanel1.setPreferredSize(new java.awt.Dimension(890, 564));

        dealerArea.setBackground(new java.awt.Color(0, 102, 0));
        dealerArea.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
        dealerArea.setName("dealerArea"); // NOI18N

        jPanel6.setBackground(new java.awt.Color(0, 102, 0));
        jPanel6.setName("dealerCardArea"); // NOI18N

        jPanel16.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
        jPanel16.setLayout(jPanel16Layout);
        jPanel16Layout.setHorizontalGroup(
                jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(dealerCard1, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel16Layout.setVerticalGroup(
                jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(dealerCard1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel17.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
        jPanel17.setLayout(jPanel17Layout);
        jPanel17Layout.setHorizontalGroup(
                jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(dealerCard2, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel17Layout.setVerticalGroup(
                jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(dealerCard2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
                jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel6Layout.setVerticalGroup(
                jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel6Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel16, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

        javax.swing.GroupLayout dealerAreaLayout = new javax.swing.GroupLayout(dealerArea);
        dealerArea.setLayout(dealerAreaLayout);
        dealerAreaLayout.setHorizontalGroup(
                dealerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(dealerAreaLayout.createSequentialGroup()
                .addGroup(dealerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(dealerAreaLayout.createSequentialGroup()
                .addGap(121, 121, 121)
                .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(dealerAreaLayout.createSequentialGroup()
                .addGap(184, 184, 184)
                .addComponent(bLDchipDealer, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        dealerAreaLayout.setVerticalGroup(
                dealerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(dealerAreaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(bLDchipDealer, javax.swing.GroupLayout.DEFAULT_SIZE, 30, Short.MAX_VALUE)
                .addContainerGap()));

        playerArea.setBackground(new java.awt.Color(0, 102, 0));
        playerArea.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

        foldButton.setText("Fold");
        foldButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        foldButton.setName("foldButton"); // NOI18N

        raiseButton.setText("Raise...");
        raiseButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        raiseButton.setName("raiseButton"); // NOI18N
        raiseButton.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                raiseButtonActionPerformed(evt);
            }
        });

        callButton.setText("Call");
        callButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        callButton.setName("callButton"); // NOI18N

        jPanel5.setBackground(new java.awt.Color(0, 102, 0));
        jPanel5.setName("playerCardArea"); // NOI18N

        jPanel14.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
        jPanel14.setLayout(jPanel14Layout);
        jPanel14Layout.setHorizontalGroup(
                jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(playerCard1, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel14Layout.setVerticalGroup(
                jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(playerCard1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel15.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
        jPanel15.setLayout(jPanel15Layout);
        jPanel15Layout.setHorizontalGroup(
                jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(playerCard2, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel15Layout.setVerticalGroup(
                jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(playerCard2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
                jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel5Layout.setVerticalGroup(
                jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addComponent(jPanel15, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

        jPanel7.setBackground(new java.awt.Color(0, 102, 0));
        jPanel7.setName("bankArea"); // NOI18N

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel1.setForeground(new java.awt.Color(153, 153, 153));
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("Current Bet");

        currTableBet.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        currTableBet.setForeground(new java.awt.Color(153, 153, 153));
        currTableBet.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        currTableBet.setText("$0");
        currTableBet.setName("currTableBet"); // NOI18N

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
                jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 86, Short.MAX_VALUE)
                .addComponent(currTableBet, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
        jPanel7Layout.setVerticalGroup(
                jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(currTableBet)
                .addContainerGap(13, Short.MAX_VALUE)));

        jPanel8.setBackground(new java.awt.Color(0, 102, 0));
        jPanel8.setName("bankArea"); // NOI18N

        jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel3.setForeground(new java.awt.Color(153, 153, 153));
        jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel3.setText("Bank");

        currPlayerBank.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        currPlayerBank.setForeground(new java.awt.Color(153, 153, 153));
        currPlayerBank.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        currPlayerBank.setText("$0");
        currPlayerBank.setName("bankAvailable"); // NOI18N

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
                jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(currPlayerBank, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 74, Short.MAX_VALUE))
                .addContainerGap()));
        jPanel8Layout.setVerticalGroup(
                jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(currPlayerBank)
                .addContainerGap(13, Short.MAX_VALUE)));

        javax.swing.GroupLayout playerAreaLayout = new javax.swing.GroupLayout(playerArea);
        playerArea.setLayout(playerAreaLayout);
        playerAreaLayout.setHorizontalGroup(
                playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(playerAreaLayout.createSequentialGroup()
                .addGroup(playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(playerAreaLayout.createSequentialGroup()
                .addComponent(callButton, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(raiseButton)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(foldButton, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(playerAreaLayout.createSequentialGroup()
                .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(33, 33, 33)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel7, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, playerAreaLayout.createSequentialGroup()
                .addComponent(bLDchipPlayer, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(30, 30, 30)))));
        playerAreaLayout.setVerticalGroup(
                playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, playerAreaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(playerAreaLayout.createSequentialGroup()
                .addComponent(bLDchipPlayer, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE)
                .addGroup(playerAreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(callButton)
                .addComponent(raiseButton)
                .addComponent(foldButton))
                .addContainerGap()));

        jPanel4.setBackground(new java.awt.Color(0, 102, 0));
        jPanel4.setName("flopArea"); // NOI18N

        jPanel9.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
                jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop1, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel9Layout.setVerticalGroup(
                jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel10.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
                jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 76, Short.MAX_VALUE)
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop2, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE)));
        jPanel10Layout.setVerticalGroup(
                jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 100, Short.MAX_VALUE)
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE)));

        jPanel11.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
        jPanel11.setLayout(jPanel11Layout);
        jPanel11Layout.setHorizontalGroup(
                jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop3, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel11Layout.setVerticalGroup(
                jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop3, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel12.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
                jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop4, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel12Layout.setVerticalGroup(
                jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop4, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel13.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
        jPanel13.setLayout(jPanel13Layout);
        jPanel13Layout.setHorizontalGroup(
                jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop5, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel13Layout.setVerticalGroup(
                jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(flop5, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        currPlayer.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        currPlayer.setForeground(new java.awt.Color(153, 153, 153));
        currPlayer.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        currPlayer.setText("Dealer is thinking...");

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
                jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
                .addComponent(currPlayer, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
        jPanel4Layout.setVerticalGroup(
                jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
                .addComponent(currPlayer)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 8, Short.MAX_VALUE)
                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))));

        ai1Area.setBackground(new java.awt.Color(0, 102, 0));
        ai1Area.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

        jPanel20.setBackground(new java.awt.Color(0, 102, 0));

        jPanel21.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel21Layout = new javax.swing.GroupLayout(jPanel21);
        jPanel21.setLayout(jPanel21Layout);
        jPanel21Layout.setHorizontalGroup(
                jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai1Card1, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel21Layout.setVerticalGroup(
                jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai1Card1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel22.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel22Layout = new javax.swing.GroupLayout(jPanel22);
        jPanel22.setLayout(jPanel22Layout);
        jPanel22Layout.setHorizontalGroup(
                jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai1Card2, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel22Layout.setVerticalGroup(
                jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai1Card2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        ai1Activity.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        ai1Activity.setForeground(new java.awt.Color(153, 153, 153));
        ai1Activity.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        ai1Activity.setText("Alice (Sleeping)");

        ai1Bank.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        ai1Bank.setForeground(new java.awt.Color(153, 153, 153));
        ai1Bank.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        ai1Bank.setText("Bank: $600");

        javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20);
        jPanel20.setLayout(jPanel20Layout);
        jPanel20Layout.setHorizontalGroup(
                jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel20Layout.createSequentialGroup()
                .addGroup(jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel20Layout.createSequentialGroup()
                .addGap(25, 25, 25)
                .addGroup(jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(ai1Activity, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel20Layout.createSequentialGroup()
                .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addComponent(ai1Bank, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(jPanel20Layout.createSequentialGroup()
                .addGap(89, 89, 89)
                .addComponent(bLDchipai1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(25, Short.MAX_VALUE)));
        jPanel20Layout.setVerticalGroup(
                jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel20Layout.createSequentialGroup()
                .addGroup(jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE)
                .addComponent(bLDchipai1, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(ai1Activity)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(ai1Bank)));

        javax.swing.GroupLayout ai1AreaLayout = new javax.swing.GroupLayout(ai1Area);
        ai1Area.setLayout(ai1AreaLayout);
        ai1AreaLayout.setHorizontalGroup(
                ai1AreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel20, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
        ai1AreaLayout.setVerticalGroup(
                ai1AreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(ai1AreaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel20, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap()));

        ai2Area.setBackground(new java.awt.Color(0, 102, 0));
        ai2Area.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

        jPanel23.setBackground(new java.awt.Color(0, 102, 0));

        jPanel24.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel24Layout = new javax.swing.GroupLayout(jPanel24);
        jPanel24.setLayout(jPanel24Layout);
        jPanel24Layout.setHorizontalGroup(
                jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai2Card1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel24Layout.setVerticalGroup(
                jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai2Card1, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        jPanel25.setBackground(new java.awt.Color(0, 102, 0));

        javax.swing.GroupLayout jPanel25Layout = new javax.swing.GroupLayout(jPanel25);
        jPanel25.setLayout(jPanel25Layout);
        jPanel25Layout.setHorizontalGroup(
                jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai2Card2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 76, Short.MAX_VALUE));
        jPanel25Layout.setVerticalGroup(
                jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai2Card2, javax.swing.GroupLayout.DEFAULT_SIZE, 100, Short.MAX_VALUE));

        ai2Activity.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        ai2Activity.setForeground(new java.awt.Color(153, 153, 153));
        ai2Activity.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        ai2Activity.setText("John (Thinking)");

        ai2Bank.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        ai2Bank.setForeground(new java.awt.Color(153, 153, 153));
        ai2Bank.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        ai2Bank.setText("Bank: $-10");

        javax.swing.GroupLayout jPanel23Layout = new javax.swing.GroupLayout(jPanel23);
        jPanel23.setLayout(jPanel23Layout);
        jPanel23Layout.setHorizontalGroup(
                jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel23Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai2Bank, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(ai2Activity, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel23Layout.createSequentialGroup()
                .addContainerGap(23, Short.MAX_VALUE)
                .addComponent(jPanel24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18))
                .addGroup(jPanel23Layout.createSequentialGroup()
                .addGap(84, 84, 84)
                .addComponent(bLDchipai2, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        jPanel23Layout.setVerticalGroup(
                jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel23Layout.createSequentialGroup()
                .addGroup(jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(jPanel24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addComponent(bLDchipai2, javax.swing.GroupLayout.DEFAULT_SIZE, 31, Short.MAX_VALUE)
                .addGap(18, 18, 18)
                .addComponent(ai2Activity)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(ai2Bank)));

        javax.swing.GroupLayout ai2AreaLayout = new javax.swing.GroupLayout(ai2Area);
        ai2Area.setLayout(ai2AreaLayout);
        ai2AreaLayout.setHorizontalGroup(
                ai2AreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel23, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));
        ai2AreaLayout.setVerticalGroup(
                ai2AreaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(ai2AreaLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel23, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap()));

        currKitty.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
        currKitty.setForeground(new java.awt.Color(204, 204, 204));
        currKitty.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        currKitty.setText("Kitty: $0");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(ai1Area, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                .addComponent(jPanel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(dealerArea, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(playerArea, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(currKitty, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(ai2Area, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(19, 19, 19)));
        jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(dealerArea, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(currKitty)
                .addGap(4, 4, 4)
                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(19, 19, 19)
                .addComponent(playerArea, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(156, 156, 156)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(ai2Area, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(ai1Area, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

        jMenuBar1.setMaximumSize(new java.awt.Dimension(27, 21));
        jMenuBar1.setMinimumSize(new java.awt.Dimension(27, 21));

        jMenu1.setText("File");
        jMenu2.setText("Help");

        menuNewGame.setText("New Game");
        menuNewGame.setName("menuNewGame"); // NOI18N
        jMenu1.add(menuNewGame);
        
        menuNumOfPlayers.setText("Number Of Players");
        menuNumOfPlayers.setName("menuNumOfPlayers");
        jMenu1.add(menuNumOfPlayers);



        menuSave.setText("Save...");
        menuSave.setName("menuSave");
        jMenu1.add(menuSave);
        menuLoad.setText("Load...");
        menuLoad.setName("menuLoad");
        jMenu1.add(menuLoad);
        
        menuExit.setText("Exit");
        menuExit.setName("menuExit"); // NOI18N
        jMenu1.add(menuExit);
        
        menuHelp.setText("How To Play");
        menuHelp.setName("menuHelp");
        jMenu2.add(menuHelp);
        
        menuAbout.setText("About");
        menuAbout.setName("About");
        jMenu2.add(menuAbout);

        jMenuBar1.add(jMenu1);
        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 902, Short.MAX_VALUE));
        layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void raiseButtonActionPerformed(java.awt.event.ActionEvent evt)
    {//GEN-FIRST:event_raiseButtonActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_raiseButtonActionPerformed

    /**
     * @param args the command line arguments
     */
    public void Display()
    {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try
        {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
            {
                if ("Nimbus".equals(info.getName()))
                {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex)
        {
            java.util.logging.Logger.getLogger(PokerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex)
        {
            java.util.logging.Logger.getLogger(PokerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex)
        {
            java.util.logging.Logger.getLogger(PokerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex)
        {
            java.util.logging.Logger.getLogger(PokerGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        /*java.awt.EventQueue.invokeLater(new Runnable() {
         public void run() {
         new PokerGUI().setVisible(true);
         }
         });*/
        this.setVisible(true);
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel ai1Area;
    private javax.swing.JLabel ai1Card1;
    private javax.swing.JLabel ai1Card2;
    private javax.swing.JPanel ai2Area;
    private javax.swing.JLabel ai2Card1;
    private javax.swing.JLabel ai2Card2;
    private javax.swing.JLabel bLDchipDealer;
    private javax.swing.JLabel bLDchipPlayer;
    private javax.swing.JLabel bLDchipai1;
    private javax.swing.JLabel bLDchipai2;
    private javax.swing.JSpinner betAmountIncrease;
    private javax.swing.JButton betButton;
    private javax.swing.JButton numOfPlayersButton;
    private javax.swing.JButton nextHandButton;
    private javax.swing.JLabel currKitty;
    private javax.swing.JLabel currPlayer;
    private javax.swing.JLabel currPlayerBank;
    private javax.swing.JLabel currTableBet;
    private javax.swing.JPanel dealerArea;
    private javax.swing.JLabel dealerCard1;
    private javax.swing.JLabel dealerCard2;
    private javax.swing.JLabel flop1;
    private javax.swing.JLabel flop2;
    private javax.swing.JLabel flop3;
    private javax.swing.JLabel flop4;
    private javax.swing.JLabel flop5;
    private javax.swing.JButton callButton;
    private javax.swing.JButton raiseButton;
    private javax.swing.JButton foldButton;
    private javax.swing.JDialog raiseWindow;
    private javax.swing.JDialog numOfPlayersWindow;
    private javax.swing.JDialog nextHandWindow;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel ai1Activity;
    private javax.swing.JLabel ai2Activity;
    private javax.swing.JLabel ai1Bank;
    private javax.swing.JLabel ai2Bank;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem menuNewGame;
    private javax.swing.JMenuItem menuNumOfPlayers;
    private javax.swing.JMenuItem menuSave;
    private javax.swing.JMenuItem menuLoad;
    private javax.swing.JMenuItem menuExit;
    private javax.swing.JMenuItem menuHelp;
    private javax.swing.JMenuItem menuAbout;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel16;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel20;
    private javax.swing.JPanel jPanel21;
    private javax.swing.JPanel jPanel22;
    private javax.swing.JPanel jPanel23;
    private javax.swing.JPanel jPanel24;
    private javax.swing.JPanel jPanel25;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    private javax.swing.JPanel playerArea;
    private javax.swing.JLabel playerCard1;
    private javax.swing.JLabel playerCard2;
    // End of variables declaration//GEN-END:variables
}